home *** CD-ROM | disk | FTP | other *** search
- 10 ' PROGRAM NAME: DLTAPLOT.BAS WRITTEN 7-16-83 REV 09-17-83
- 40 '
- 45 ' **********************************************************
- 50 ' * DRIVER MODULE *
- 55 ' **********************************************************
- 65 '
- 70 CLS
- 75 KEY OFF
- 80 PRINT "PROGRAM DLTAPLOT.BAS EXECUTING"
- 82 PRINT
- 85 INPUT "PRINTER CONNECTED TO SYSTEM (Y/N)"; YPRINT$
- 90 REC.CNT = 0
- 95 OPEN "A:DRIVE.DTA" FOR INPUT AS #1
- 100 INPUT #1, DRIVE$,PRNT$
- 105 CLOSE #1
- 110 IF DRIVE$ = "A" OR DRIVE$ = "a" THEN GOSUB 300 ELSE GOSUB 400
- 115 IF YPRINT$ <> "Y" AND YPRINT$ <> "y" THEN GOTO 135
- 120 WIDTH "LPT1:",80
- 125 ' SET UP DEFAULT CONDITIONS FOR IBM OR EPSON PRINTER
- 130 IF PRNT$ = "E" OR PRNT$ = "e" THEN GOSUB 4100 ELSE GOSUB 4200
- 132 '
- 135 GOSUB 500 'SELECT GSCALE
- 140 '
- 145 GOSUB 600 'SELECT HSCALE
- 150 '
- 155 GOSUB 700 'SET END.NUM AND SKIP.NUM LIMITS
- 160 '
- 165 GOSUB 800 'READ FIRST (IDENTIFICATION) REC
- 170 '
- 175 IF SKIP.NUM <> 0 THEN GOSUB 900 'SKIP INITIAL RECORDS
- 180 '
- 185 CLS
- 190 GOSUB 1000 'SET UP HEADERS AND AXES
- 195 '
- 200 IF REC.CNT < END.NUM THEN GOSUB 1500 ELSE GOTO 215 'PROCESS 1ST DATA REC
- 202 '
- 205 GOSUB 1700 'PLOT BALANCE OF RECORDS
- 210 '
- 215 GOSUB 4000 'EOJ HOUSEKEEPING
- 220 '
- 225 END
- 300 ' *******************************************************************
- 310 ' * GOSUB 300 *
- 320 ' * GET DATA FROM DRIVE A *
- 330 ' *******************************************************************
- 340 '
- 350 PRINT "INSERT DATA DISKETTE IN DRIVE A"
- 352 IF YPRINT$ <> "Y" AND YPRINT$ <> "y" THEN GOTO 365
- 355 PRINT "SET PRINTER TO TOP OF PAGE"
- 360 PRINT "VERIFY THAT PRINTER IS ON"
- 365 PRINT "STRIKE ANY KEY WHEN READY"
- 370 A$ = INKEY$: IF A$ = "" THEN 370
- 380 OPEN "A:DLTAFILE.DTA" FOR INPUT AS #2
- 390 RETURN
- 400 ' *******************************************************************
- 410 ' * GOSUB 400 *
- 420 ' * GET DATA FROM DRIVE B *
- 430 ' *******************************************************************
- 440 '
- 450 PRINT "INSERT DATA DISKETTE IN DRIVE B"
- 452 IF YPRINT$ <> "Y" AND YPRINT$ <> "y" THEN GOTO 465
- 455 PRINT "SET PRINTER TO TOP OF PAGE"
- 460 PRINT "VERIFY THAT PRINTER IS ON"
- 465 PRINT "STRIKE ANY KEY WHEN READY"
- 470 A$ = INKEY$: IF A$ = "" THEN 470
- 480 OPEN "B:DLTAFILE.DTA" FOR INPUT AS #2
- 490 RETURN
- 500 ' **********************************************************
- 505 ' * GOSUB 500 *
- 510 ' * SELECT GSCALE *
- 515 ' **********************************************************
- 520 '
- 525 PRINT "SELECT VERTICAL SCALE FROM FOLLOWING:"
- 530 PRINT " 1 - $0 TO $800 RANGE"
- 535 PRINT " 2 - $0 TO $1600 RANGE"
- 540 PRINT " 3 - $0 TO $4000 RANGE"
- 545 PRINT " 4 - $0 TO $8000 RANGE"
- 550 PRINT " 5 - $0 TO $16000 RANGE"
- 555 PRINT " 6 - $0 TO $32000 RANGE"
- 560 PRINT " 7 - $0 TO $64000 RANGE"
- 565 PRINT " 8 - $0 TO $128000 RANGE"
- 570 INPUT "VERTICAL SCALE SELECTED IS ", GSCALE
- 575 IF GSCALE <= 0 OR GSCALE > 8 THEN BEEP: GOTO 525
- 577 '
- 580 ON GSCALE GOSUB 1200, 1225, 1250, 1275, 1300, 1325, 1350, 1375
- 590 '
- 595 RETURN
- 600 ' **********************************************************
- 605 ' * GOSUB 600 *
- 610 ' * SELECT HSCALE *
- 615 ' **********************************************************
- 620 '
- 625 PRINT "SET HORIZONTAL SCALE - "
- 630 PRINT " SELECT FROM 3 TO 10"
- 635 INPUT " SCALE SELECTED IS ", HSCALE
- 640 IF HSCALE < 3 OR HSCALE > 10 THEN BEEP: GOTO 625
- 660 '
- 665 RETURN
- 700 ' **********************************************************
- 705 ' * GOSUB 700 *
- 710 ' * SET END.NUM AND SKIP.NUM LIMITS *
- 715 ' **********************************************************
- 720 '
- 725 INPUT "INPUT LIMIT ON NUMBER OF RECS TO BE PROCESSED ", END.NUM
- 730 PRINT
- 735 INPUT "SOME INITIAL RECORDS TO BE SKIPPED (Y/N)"; SKIP$
- 740 PRINT
- 745 IF SKIP$ <> "Y" AND SKIP$ <> "y" THEN GOTO 770
- 750 '
- 755 INPUT "INPUT COUNT OF INITIAL RECORDS TO BE SKIPPED ", SKIP.NUM
- 760 GOTO 780
- 765 '
- 770 SKIP.NUM = 0
- 775 '
- 780 RETURN
- 800 ' ********************************************************
- 805 ' * GOSUB 800 *
- 810 ' * READ FIRST (IDENTIFICATION) RECORD *
- 815 ' ********************************************************
- 820 '
- 825 IF EOF(2) THEN GOTO 215
- 830 INPUT #2, I.FILE.TITLE$, I.FILE.OWNER$, I.FILE.UPDATE.DATE$
- 835 HDG1$ = I.FILE.OWNER$
- 870 RETURN
- 900 ' ********************************************************
- 905 ' * GOSUB 900 *
- 910 ' * SKIP NUMBER OF RECORDS SPECIFIED BY SKIP.NUM *
- 915 ' ********************************************************
- 920 '
- 925 FOR I = 1 TO SKIP.NUM
- 930 IF EOF(2) THEN GOTO 215
- 935 INPUT #2, I.DATE, I.TDLR, I.DDLR
- 940 REC.CNT = REC.CNT + 1
- 945 NEXT
- 950 RETURN
- 1000 ' ********************************************************
- 1002 ' * GOSUB 1000 *
- 1004 ' * SET UP HEADERS AND AXES *
- 1006 ' ********************************************************
- 1008 '
- 1010 SCREEN 2,,0,0
- 1014 LOCATE 6,1
- 1016 PRINT "D"
- 1018 LOCATE 7,1
- 1020 PRINT "E"
- 1022 LOCATE 8,1
- 1024 PRINT "L"
- 1026 LOCATE 9,1
- 1028 PRINT "T"
- 1030 LOCATE 10,1
- 1032 PRINT "A"
- 1040 '
- 1042 LOCATE 25,70
- 1044 PRINT "PERIOD"
- 1050 '
- 1052 LOCATE 1,1
- 1054 PRINT HDG1$
- 1060 '
- 1062 LOCATE 1,30
- 1064 PRINT "PORTFOLIO VALUE CHANGES"
- 1070 '
- 1072 LOCATE 1,65
- 1074 PRINT DATE$
- 1080 '
- 1082 LOCATE 3,30
- 1084 PRINT "MAX DELTA "
- 1090 '
- 1092 LOCATE 3,40
- 1094 PRINT SF.HDR$
- 1100 '
- 1105 LINE (20,20)-(20,190)
- 1110 ' SET COL 20 TICK MARKS (EVERY 5TH ROW)
- 1115 FOR A = 20 TO 190 STEP 5
- 1120 LINE (18,A)-(22,A)
- 1125 NEXT A
- 1130 LINE (20,180)-(620,180)
- 1135 ' SET ROW 20 TICK MARKS (INTERVAL SPECIFIED BY HSCALE)
- 1140 FOR B = 20 TO 620 STEP HSCALE
- 1145 LINE (B,178)-(B,182)
- 1150 NEXT B
- 1155 '
- 1195 RETURN
- 1200 ' ********************************************************
- 1205 ' GOSUB 1200 - GSCALE = 1
- 1210 SF = .2
- 1215 SF.HDR$ = "$800"
- 1220 RETURN
- 1225 ' ********************************************************
- 1230 ' GOSUB 1225 - GSCALE = 2
- 1235 SF = .1
- 1240 SF.HDR$ = "$1,600"
- 1245 RETURN
- 1250 ' ********************************************************
- 1255 ' GOSUB 1250 - GSCALE = 3
- 1260 SF = .04
- 1265 SF.HDR$ = "$4,000"
- 1270 RETURN
- 1275 ' ********************************************************
- 1280 ' GOSUB 1275 - GSCALE = 4
- 1285 SF = .02
- 1290 SF.HDR$ = "$8,000"
- 1295 RETURN
- 1300 ' ********************************************************
- 1305 ' GOSUB 1300 - GSCALE = 5
- 1310 SF = .01
- 1315 SF.HDR$ = "$16,000"
- 1320 RETURN
- 1325 ' ********************************************************
- 1330 ' GOSUB 1325 - GSCALE = 6
- 1335 SF = 5.000001E-03 '.005 SCALE FACTOR
- 1340 SF.HDR$ = "$32,000"
- 1345 RETURN
- 1350 ' ********************************************************
- 1355 ' GOSUB 1350 - GSCALE = 7
- 1360 SF = .0025
- 1365 SF.HDR$ = "$64,000"
- 1370 RETURN
- 1375 ' ********************************************************
- 1380 ' GOSUB 1375 - GSCALE = 8
- 1385 SF = .00125
- 1390 SF.HDR$ = "$128,000"
- 1395 RETURN
- 1400 ' ********************************************************
- 1405 ' * GOSUB 1400 *
- 1410 ' * PRINT GRAPH POINTS AND INTERCONNECT W/LINES *
- 1415 ' ********************************************************
- 1420 '
- 1425 LINE (OLD.C,OLD.R)-(NEW.C,NEW.R)
- 1430 OLD.C = NEW.C
- 1435 OLD.R = NEW.R
- 1440 NEW.C = NEW.C + HSCALE
- 1445 RETURN
- 1500 ' ********************************************************
- 1505 ' * GOSUB 1500 *
- 1510 ' * PROCESS FIRST DATA RECORD *
- 1515 ' ********************************************************
- 1520 '
- 1525 IF EOF(2) THEN GOTO 215
- 1530 INPUT #2, I.DATE, I.TDLR, I.DDLR
- 1535 REC.CNT = REC.CNT + 1
- 1540 OLD.C = 20
- 1545 OLD.R = 180
- 1550 NEW.C = OLD.C + HSCALE
- 1555 DDLR = I.DDLR * SF
- 1560 DDLR = CINT(DDLR)
- 1565 NEW.R = OLD.R - DDLR
- 1575 GOSUB 1400 'PRINT GRAPH POINTS AND INTERCONNECT W/LINES
- 1580 RETURN
- 1700 ' *********************************************************
- 1705 ' * GOSUB 1700 *
- 1710 ' * PLOT PORTFOLIO DOLLAR TOTALS AGAINST WEEKS *
- 1715 ' *********************************************************
- 1720 '
- 1725 END.NUM = END.NUM - REC.CNT
- 1730 FOR I = 1 TO END.NUM
- 1735 IF EOF(2) THEN GOTO 1770
- 1740 INPUT #2, I.DATE, I.TDLR, I.DDLR
- 1750 DDLR = I.DDLR * SF
- 1755 DDLR = CINT(DDLR)
- 1760 NEW.R = OLD.R - DDLR
- 1765 GOSUB 1400 'PRINT GRAPH POINTS AND INTERCONNECT W/LINES
- 1768 NEXT
- 1769 '
- 1770 CLOSE #2
- 1780 SOUND 1760,9:SOUND 1046.5,9:SOUND 659.26,9:SOUND 440,9:SOUND 261.63,9:SOUND 164.81,9:SOUND 32767,9
- 1790 R$ = INKEY$: IF R$ = "" THEN 1790
- 1792 '
- 1795 RETURN
- 4000 ' **********************************************************
- 4005 ' * GOSUB 4000 *
- 4010 ' * EOJ HOUSEKEEPING *
- 4015 ' **********************************************************
- 4020 '
- 4025 SCREEN 0,0,0,0
- 4030 PRINT "ALL DATA PROCESSED - PROGRAM ENDS"
- 4060 KEY ON
- 4065 RETURN
- 4100 '***********************************************************
- 4105 '* SET EPSON PRINTER TO DEFAULT CONDITION *
- 4110 '***********************************************************
- 4115 '
- 4120 LPRINT CHR$(27); CHR$(64); 'TURN OFF ALL SPCL PRINTER CODES
- 4125 RETURN
- 4200 '***********************************************************
- 4205 '* SET IBM PRINTER TO DEFAULT CONDITIONS *
- 4210 '***********************************************************
- 4215 '
- 4220 LPRINT CHR$(20); 'DOUBLE WIDTH CHAR OFF
- 4225 LPRINT CHR$(18); 'COMPRESSED CHAR OFF
- 4230 LPRINT CHR$(27); CHR$(50); 'DEFAULT LINE SPACING (1/6")
- 4235 LPRINT CHR$(27); CHR$(55); 'CHAR SET #1 SELECTED
- 4240 LPRINT CHR$(27); CHR$(57); 'PAPER OUT SWITCH ENABLED
- 4245 LPRINT CHR$(27); CHR$(70); 'EMPHASIZED CHAR OFF
- 4250 LPRINT CHR$(27); CHR$(72); 'DOUBLE STRIKE OFF
- 4255 LPRINT CHR$(27); CHR$(79); 'IGNORE SKIPS OVER PERFS
- 4260 LPRINT CHR$(27); CHR$(85); CHR$(0); 'SELECT BIDIRECTIONAL PRINT
- 4265 LPRINT CHR$(27); CHR$(84); 'SUB/SUPERSCRIPT OFF
- 4270 LPRINT CHR$(27); CHR$(87); CHR$(0); 'DOUBLE WIDE CHAR OFF
- 4275 LPRINT CHR$(27); CHR$(45); CHR$(0); 'UNDERLINING OFF
- 4280 '
- 4285 RETURN
- 4290 '
- 4295 '***********************************************************
- ); CHR$(0); 'UNDERLINING OFF
- 4280 '
- 4285 RETURN
- 4290 '
- 4295 '************************